iT邦幫忙

2026 iThome 鐵人賽

DAY 14
0
自我挑戰組

滲透測試新手的 HTB Academy 30天學習日記系列 第 14 篇

Day 14 Nmap 教學 Part 3 Service ( Version ) & OS Scan

  • 分享至 

  • xImage
  •  

昨天我們介紹了 Port Scan 的幾種常用類型,今天我們繼續往下介紹,找出有哪些 Port 開啟後我們就可以對這些特定的 Port 做服務探測來盡可能地找出服務詳細資訊,像是最重要的服務版本,版本越詳細越能夠找出對應的漏洞利用腳本,來做到下一步的滲透。

Service ( Version ) Scan 服務掃描

Nmap 的 Service Scan 是將掃描出來的特徵跟 Nmap 內建的資料集比對後,找出最相近的服務版本輸出出來。

使用說明

基本指令 :

nmap [目標IP位址] -sV
  • -sV : 服務版本掃描功能

實例 :

nmap 192.168.184.135 -sV      
Starting Nmap 7.99 ( https://nmap.org ) at 2026-09-23 23:04 -0400
Nmap scan report for 192.168.184.135
Host is up (0.0023s latency).
Not shown: 977 closed tcp ports (reset)
PORT     STATE SERVICE     VERSION
21/tcp   open  ftp         vsftpd 2.3.4
22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp   open  telnet      Linux telnetd
25/tcp   open  smtp        Postfix smtpd
53/tcp   open  domain      ISC BIND 9.4.2
80/tcp   open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp  open  rpcbind     2 (RPC #100000)
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp  open  exec        netkit-rsh rexecd
513/tcp  open  login       OpenBSD or Solaris rlogind
514/tcp  open  tcpwrapped
1099/tcp open  java-rmi    GNU Classpath grmiregistry
1524/tcp open  bindshell   Metasploitable root shell
2049/tcp open  nfs         2-4 (RPC #100003)
2121/tcp open  ftp         ProFTPD 1.3.1
3306/tcp open  mysql       MySQL 5.0.51a-3ubuntu5
5432/tcp open  postgresql  PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open  vnc         VNC (protocol 3.3)
6000/tcp open  X11         (access denied)
6667/tcp open  irc         UnrealIRCd
8009/tcp open  ajp13       Apache Jserv (Protocol v1.3)
8180/tcp open  http        Apache Tomcat/Coyote JSP engine 1.1
MAC Address: 00:0C:29:91:2F:D9 (VMware)
Service Info: Hosts:  metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 20.65 seconds

根據結果我們可以發現除了版本詳細資訊以外,下方還有一個 Service Info 裡面記載著主機名稱.作業系統等的資訊,這邊找出來的作業系統不一定完全準確,下面會介紹到的 OS Scan 的結果相較於這邊可信度會高不少。

選項介紹

  • --version-intensity <intensity> : 版本掃描的強度 ( 0 - 9 ),預設為 7,強度越高服務被正確識別的可能性越大,但相對的因為會嘗試各種不同的封包樣式來做探測,速度也會降低不少。
  • --version-all : 嘗試所有的探測封包,也等同 --version-intensity 9。

OS Scan

OS Scan 是用來判斷目標的作業系統,透過發送各種 TCP 與 UDP 封包,分析回應的特徵與細節 ( 如 : IP Header 中的 TTL Linux 預設為 64 Windows 預設為 128 ) ,來與 Nmap 自己整理出來的數據庫做比較後,來找出相對應的結果。

使用說明

nmap [IP位址] -O
  • -O : 作業系統探測
nmap 192.168.184.135 -O
Starting Nmap 7.99 ( https://nmap.org ) at 2026-09-24 05:00 -0400
Nmap scan report for 192.168.184.135
Host is up (0.00085s latency).
Not shown: 978 closed tcp ports (reset)
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
23/tcp   open  telnet
25/tcp   open  smtp
53/tcp   open  domain
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
512/tcp  open  exec
513/tcp  open  login
514/tcp  open  shell
1099/tcp open  rmiregistry
1524/tcp open  ingreslock
2049/tcp open  nfs
2121/tcp open  ccproxy-ftp
3306/tcp open  mysql
5432/tcp open  postgresql
5900/tcp open  vnc
6000/tcp open  X11
6667/tcp open  irc
8180/tcp open  unknown
MAC Address: 00:0C:29:91:2F:D9 (VMware)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.23 seconds

在最下方我們可以看到 OS Scan 的結果是這些,作業系統為 Linux 版本為 2.6.9 - 2.6.33 ,Nmap 沒辦法太限縮作業系統的版本只能找出個大概範圍,但透過這個範圍就已經有很多可以嘗試滲透的空間了。

Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Network Distance: 1 hop
  • Device type : 裝置的用途
  • Running : 裝置上的 OS 版本
  • OS CPE : 作業系統的 CPE(Common Platform Enumeration,通用平台列舉)用來標準化命名作業系統的格式
  • OS details : OS 詳細版本
  • Network Distance : 與目標的網路距離,經過的路由器及裝置的數量

實際上直接從目標看作業系統 :
https://ithelp.ithome.com.tw/upload/images/20260924/20183931hIItTraF32.png
從圖片看出目標的作業系統為 GNU/Linux 版本是 2.6.24

補充

GNU/Linux 與 Linux 的命名爭議

今天在找資料的時候意外發現原來 Linux 的命名有這樣的爭議,Linux 原本是作為 作業系統核心 ( Kernel ) 開發出來的而不是一個完整的作業系統,Linus Torvalds ( Linux 之父 ) 跟一些早期的 Linux 開發者引用了GNU計劃的內容來完成 Linux 這個作業系統,所以嚴格說起來 Linux 只算是一個作業系統核心 ( Kernel ) ,是因為搭配了 GNU 的程式才組成一個作業系統,所以 GNU計劃的發起人 理察·斯托曼認為將該作業系統稱為「GNU/Linux」比較恰當。。

總結

今天提到了服務版本與OS的探測,這兩點都是要做下一步滲透可以考慮的方向,今天也意外的學到了 Linux 實際的意思以前一直都以為只有作業系統這層的意思,沒想到還有核心這樣的解釋。

明天會簡單介紹 NSE ( Nmap Script Engine ) ,那就明天見啦!

參考資料來源

延伸閱讀


上一篇
Day 13 Nmap 教學 Part 2 Port Scan
下一篇
Day 15 Nmap 教學 Part 4 NSE 使用及介紹
系列文
滲透測試新手的 HTB Academy 30天學習日記 共 15 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言